<?php

namespace Addons\YiXinxi;

use Common\Controller\Addon;

class YiXinxiAddon extends Addon
{
    public $info = array(
        'name' => 'YiXinxi',
        'title' => '第一信息网',
        'description' => '第一信息网短信插件 http://www.1xinxi.cn',
        'status' => 1,
        'author' => '駿濤',
        'version' => '1.0.0'
    );

    public function install()
    {
        return true;
    }

    public function uninstall()
    {
        return true;
    }

    /**
     * sms  短信钩子，必需，用于确定插件是短信服务
     * @return bool
     * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
     */
    public function sms()
    {
        return true;
    }


    public function sendSms($mobile, $content){
        $uid = modC('SMS_UID', '', 'USERCONFIG');
        $pwd = modC('SMS_PWD', '', 'USERCONFIG');
        if (empty($uid) || empty($pwd)) {
            return '管理员还未配置短信信息，请联系管理员配置';
        }
        $flag = 0;
        $params='';//要post的数据
        $argv = array(
            'name'=>$uid,     //必填参数。用户账号
            'pwd'=>trim($pwd),     //必填参数。（web平台：基本资料中的接口密码）
            'content'=> $content,   //必填参数。发送内容（1-500 个汉字）UTF-8编码
            'mobile'=>$mobile,   //必填参数。手机号码。多个以英文逗号隔开
            'stime'=>'',   //可选参数。发送时间，填写时已填写的时间发送，不填时为当前时间发送
            'sign'=>'',    //必填参数。用户签名。
            'type'=>'pt',  //必填参数。固定值 pt
            'extno'=>''    //可选参数，扩展码，用户定义扩展码，只能为数字
        );
        foreach ($argv as $key=>$value) {
            if ($flag!=0) {
                $params .= "&";
                $flag = 1;
            }
            $params.= $key."="; $params.= urlencode($value);// urlencode($value);
            $flag = 1;
        }
        $url = "http://sms.1xinxi.cn/asmx/smsservice.aspx?".$params; //提交的url地址

        $return = explode(',',file_get_contents($url));
        $con=$return[0];  //获取信息发送后的状态
        if($con == '0'){
            return true;
        }else{
            return "发送失败! 状态：" . $con .' '. $this->getCode($con);

            //return file_get_contents($url);
        }
    }


    private function getCode($code){
        switch($code){
            case 0: return '提交成功';
            case 1: return '含有敏感词汇';
            case 2: return '余额不足';
            case 3: return '没有号码';
            case 4: return '包含sql语句';
            case 10: return '账号不存在';
            case 11: return '账号注销';
            case 12: return '账号停用';
            case 13: return 'IP鉴权失败';
            case 14: return '格式错误';
            case -1: return '系统异常';
            default : return '未知参数';
        }
    }


}